Methods for finishing surfaces using tool center point shift techniques

ABSTRACT

The described embodiments relate generally to lapping, polishing or sanding operations of three dimensional objects having curved surfaces. More specifically, methods and apparatuses are described for providing a smooth and consistent looking surface along curved or spline shaped features. In some embodiments, a robot arm is used in conjunction with a computer numerical control (CNC) machine. Methods involve varying the location of a tool center point with respect to a finishing tool depending on the location of the finishing tool with respect to the tool control path.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application No. 61/785,371, filed Mar. 14, 2013, entitled “METHODS FOR FINISHING SURFACES USING TOOL CENTER POINT SHIFT TECHNIQUES” and U.S. Provisional Patent Application No. 61/717,080, filed Oct. 22, 2012, entitled “METHODS FOR FINISHING SURFACES USING TOOL CENTER POINT SHIFT TECHNIQUES,” which are incorporated herein by reference in their entirety and for all purposes.

FIELD OF THE DESCRIBED EMBODIMENTS

The described embodiments relate generally to lapping, polishing or sanding operations for cosmetic surfaces of a three dimensional object having cosmetic curved surfaces. More specifically, methods and apparatuses are described for providing a smooth and consistent looking surface along curved or spline shaped features.

BACKGROUND

The proliferation of high volume manufactured, portable electronic devices has encouraged innovation in both functional and aesthetic design practices for enclosures that encase such devices. Manufactured devices can include a casing that provides an ergonomic shape and aesthetically pleasing visual appearance desirable to the user of the device. The enclosures can include three-dimensional curved surfaces in certain portions, such as at the edges and corners of the enclosures, which can enhance the look and feel of the devices.

The surfaces of the device enclosures are generally polished or sanded in order to provide a fine polished surface or reflective finish. On three-dimensional surfaces composed of splines or curvatures, it can be difficult to polish these complex surfaces to a uniform surface appearance. Prior techniques can result in a tacitly smooth finish but that can leave undesirable visual variations in surface appearance, especially at curved regions of the enclosures.

SUMMARY

This paper describes various embodiments relating to methods and apparatuses for providing a smooth and consistent surface along curved or spline shaped features. Methods involve varying the location of an identified tool center point with respect to a finishing tool during a finishing operation.

According to one embodiment described herein, a method for finishing a curved surface of a part is described. The method can involve positioning the part in a computer numerical control (CNC) tool. The part can have at least one curved surface adjacent to at least one flat surface. The method also includes finishing the surface of the part by moving a finishing tool along a tool control path that travels along the flat surface and the curved surface. The finishing tool rotates about an axis which is substantially normal to the at least one curved and at least one flat surfaces during the finishing. Also during the finishing, a location of a tool center point (TCP) varies with respect to the finishing tool depending on the location of the finishing tool with respect to the tool control path.

According to another embodiment, a method for polishing an edge of a part that has a curved surface between a first flat surface and a second flat surface is described. The method can involve positioning the part in a CNC tool. Then, the edge is polished by moving a polishing tool along a tool control path that travels from the first flat surface to the curved surface to the second flat surface. During the polishing, the polishing tool rotates about an axis substantially normal to the curved surface and the first and second flat surfaces. A location of a TCP can vary with respect to the finishing tool depending on the location of the finishing tool with respect to the tool control path.

According to further embodiment, a non-transitory computer readable medium for storing a computer program executable by a processor for finishing a surface of a part is described. The part can have at least one curved surface adjacent to at least one flat surface. The non-transitory computer readable medium includes computer code for positioning the part in a CNC tool. The non-transitory computer readable medium also includes computer code for finishing the surface of the part by moving a finishing tool along a tool control path that travels along the at least one flat surface and the at least one curved surface. The finishing tool can rotate about an axis substantially normal to the at least one curved and at least one flat surfaces during the finishing. During the finishing, a location of a TCP can vary with respect to the finishing tool depending on the location of the finishing tool with respect to the tool control path.

BRIEF DESCRIPTION OF THE DRAWINGS

The described embodiments may be better understood by reference to the following description and the accompanying drawings. Additionally, advantages of the described embodiments may be better understood by reference to the following description and accompanying drawings. These drawings do not limit any changes in form and detail that may be made to the described embodiments. Any such changes do not depart from the spirit and scope of the described embodiments.

FIG. 1A shows a robot arm configured with a finishing tool for polishing, lapping or sanding a part.

FIG. 1B shows a close-up side view of a robot arm assembly.

FIGS. 2A-2F show partial views of part being processing using a finishing tool.

FIGS. 3A-3B show close-up side views of a part finished according to the process shown in FIGS. 2A-2E.

FIGS. 4A-4F show partial views of a part being processed by a finishing tool during a finishing operation in accordance with described embodiments.

FIG. 5 is a flowchart showing process steps for finishing a surface of a part in accordance with described embodiments.

FIG. 6 is a block diagram of an electronic device suitable for controlling some of the processes in the described embodiment.

DETAILED DESCRIPTION OF SELECTED EMBODIMENTS

Representative applications of methods and apparatus according to the present application are described in this section. These examples are being provided solely to add context and aid in the understanding of the described embodiments. It will thus be apparent to one skilled in the art that the described embodiments may be practiced without some or all of these specific details. In other instances, well known process steps have not been described in detail in order to avoid unnecessarily obscuring the described embodiments. Other applications are possible, such that the following examples should not be taken as limiting.

In the following detailed description, references are made to the accompanying drawings, which form a part of the description and in which are shown, by way of illustration, specific embodiments in accordance with the described embodiments. Although these embodiments are described in sufficient detail to enable one skilled in the art to practice the described embodiments, it is understood that these examples are not limiting; such that other embodiments may be used, and changes may be made without departing from the spirit and scope of the described embodiments.

High volume manufactured electronic devices can include computer numerically controlled (CNC) machined parts with various geometrically shaped surfaces. The machined parts can be finished using one or more robotic tools, including using surface finishing processes such as lapping, sanding and polishing one or more surfaces of the part. Representative electronic devices can include portable media players, portable communication devices, and portable computing devices, such as an iPod®, iPhone®, iPad®, and MacBook Air® as well as desktop products including an iMac® and a Mac Pro®, and other electronic devices manufactured by Apple Inc. of Cupertino, Calif. Both the tactile and visual appearance of an electronic device can enhance the desirability of the electronic device to the consumer.

The machining operations described herein involve lapping, sanding or polishing of one or more surfaces of a part, such as an enclosure of an electronic device, to imbue the part a pleasing overall look and feel. The lapping, sanding or polishing procedures can be generally referred to as finishing operations that can provide smooth and consistent finished surface. The finishing processes can be applied to numerous types of materials such as metals (e.g., aluminum, stainless steel, etc.) and injection molded thermoplastics. The surfaces can have various geometrical shapes. The methods disclosed herein can be used to provide refined highly polished surfaces even at curved or spline shaped surfaces of the part. Curved regions can transition smoothly into flat regions including along corner areas without any visual change in surface appearance. In accordance with some embodiments, the finishing operation can be performed on an edge or a corner of a part. The finishing procedures can be accomplished using a CNC machine configured for finishing a surface of a part. In some embodiments, a robotic arm is used as part of the CNC machine. The robotic arm can maneuver a finishing tool with relation to the part being polished or sanded.

FIG. 1A shows a five axis robotic arm 100 in accordance with described embodiments. A five axis robotic arm such as the one depicted in FIG. 1A can be configured to accurately maneuver a finishing tool along a surface of a part. This maneuvering can be referred to as a tool control path. In a finishing or polishing operation, the tool control path moves finishing tool 112 in an orientation that is substantially normal to the surface of the part. Robot arm 100 can be maneuvered in at least axes 102, 104, 106, 108 and 110. In this way, finishing tool 112 can be maneuvered along flat as well as three dimensional surfaces of the part, such as curved or spline shaped surfaces. Finishing tool 112 can rotate about axis 114 and contact the surface of the part along the tool control path, thereby sanding or polishing the surface of the part. In wet sanding operations, finishing tool 112 can be used in conjunction with a fluid that can be dispensed from a dispenser (e.g. tube) positioned on or off of robot arm 100. In some cases the fluid can lubricate finishing tool 112 during a finishing process. In accordance with one embodiment, the fluid includes abrasive particles that abrade the surface of the part during a finishing process.

Generally, a tool center point (TCP) of a robot, such robot arm 100, is established as a datum point for orienting the movement of the robot with respect to three-dimensional space. That is, the TCP can be defined as the datum position of the robot wrist established, for example, by the robot manufacturer to which a tool/part can be mounted to during a particular operation. The end of the part can then be set as the new tool center point for the robot and tool/part assembly. For example, FIG. 1B illustrates a close-up side view of a robot arm assembly 118 which includes a robot arm 120 and end effector 122. End effector 122 includes a holder 128 and finishing tool 130. The robot manufacturer can establish a first TCP location 124 located at the end of robot arm 120. When end effector 122 is added to robot arm 120, TCP location can be changed to a second location 126 located at the end of finishing tool 130, which comes into contact with a part. The TCP of finishing tool 130 can be configured to be the datum point controlling the tool control path of finishing tool 130 as it contacts the surface of the part. The TCP can be specified in Cartesian, cylindrical, spherical, or other suitable coordinates. The TCP can be stored as a value in a computer algorithm controlling the movement of a machine, such robot arm assembly 118.

FIGS. 2A-2F show partial views of part 202 being processed by finishing tool 112 during a finishing operation. Finishing tool 112 is configured to have the TCP 204 located at the center of the front surface of finishing tool 112. In FIGS. 2A-2F, finishing tool 112 is rotated about axis 114 (shown in FIG. 1) as it contacts part 202. At FIG. 2A, finishing tool 112 contacts and finishes flat vertical surface 206 of part 202. At FIG. 2B, TCP 204 of finishing tool 112 reaches a curved surface 210 of part 202 and is rotated to follow curved surface 210. At FIG. 2C, TCP 204 has continued is movement along curved regions 210 and has reached the center of curved surface 210. At FIG. 2D, finishing tool 112 is completing the finishing of curved surface 210 and is moving towards flat horizontal surface 208. At FIG. 2E, finishing tool 112 has completed finishing of curved surface 210 and is finishing flat horizontal surface 208. Note that during the finishing process presented in FIGS. 2A-2E, TCP 204 is fixed. In particular, TCP 204 is consistently located at the center of front surface of finishing tool 112. As shown in FIG. 2F, this fixed TCP configuration can create defects 212 at portions of the surface of part 202, in particular, the regions coming into and out of curved surface 210. A close up view of these defects and other defects can be seen at FIG. 3A-3B and described below.

FIG. 3A shows a close-up side view of a part 202 finished according to the process shown in FIGS. 2A-2F. As shown, curved surface 210, flat vertical surface 206 and flat horizontal surface 208 of part 202 are polished to a smooth finish. However, defects or artifacts 312 positioned at either side of curved surface 210 can formed. Defects 312 can be in the form of breaks or steps where the surface is uneven and can be visible as lines on the surface of part 202. Defects may or may not be tactilely detectable. Defects 312 can be caused by the increase of angular velocity of finishing tool 112 as finishing tool 112 moves from flat vertical surface 206 to curved surface 210, then from curved surface 210 to flat horizontal surface 208. Due to the linear motion of the finishing tool 112 along the flat surfaces 206/208 to/from corner surface 210, the pivoting motion approaching curved surface 210 can lead to discrete changes in surface texture due to the change in motion. Put another way, the dwell time of finishing tool 112 abruptly increases as it moves from flat vertical surface 206 to curved surface 210. Similarly, the dwell time of finishing tool 112 abruptly decreases as it moves from curved surface 210 to flat horizontal surface 208. These abrupt changes can cause the defects or artifacts 312 at these transition points along the surface of part 202. FIG. 3B shows a close up view of part 202 showing inconsistent finishing marks 314 at curved surface 210 compared to consistent finishing marks 316 at flat surfaces 206 and 208.

Methods described herein provide a smooth and consistent polished surface along flat or straight surfaces and curved or spline shaped surfaces, as well as transition regions between the flat surfaces and curved surfaces. FIGS. 4A-4F show partial views of part 402 being processed by finishing tool 112 during a finishing operation in accordance with described embodiments. Finishing tool 112 is configured to have the TCP 404 located at the varying locations of finishing tool 112. As shown in FIG. 4A, when finishing tool 112 is polishing flat vertical surface 406 of part 402, TCP 404 is located at a front top portion of finishing tool 112. Note that the location of TCP 404 is different than the location of TCP 104 of FIG. 2A, which is at the center of finishing tool 112. At FIG. 4B, as finishing tool 112 is moved along the tool control path toward curved surface 410 and is positioned between flat vertical surface 406 and curved surface 410. Curved surface 410 can be, for example, an edge or a corner of part 402. This transition region between flat vertical surface 406 and curved surface 410 is the area prone to defects using the fixed TCP finishing technique shown in FIGS. 2A-2E. Since TCP 404 has moved with respect to its location on finishing tool 412, this allows the speed at which finishing tool 412 travels along the surface of part 402 to remain substantially constant. That is, the finishing tool can travel along the tool control path at a substantially constant speed that allows continuous finishing of the surface along the tool control path. Thus, the abrupt change of speed seen in the fixed TCP configuration shown in FIGS. 2A-2E can be avoided, thereby reducing the occurrence of defects caused by abrupt speed changes.

At FIG. 4C, finishing tool 112 is positioned at the center of curved surface 410. As show, TCP 404 has been further shifted to a front center location of finishing tool 112. At FIG. 4D, finishing tool 112 is completing the finishing of curved surface 410 and is moving towards flat horizontal surface 408. Finishing tool 412 is positioned between curved surface 410 and flat horizontal surface 406. This transition region between curved surface 410 and flat horizontal surface 406 is the area prone to defects using the fixed TCP finishing technique shown in FIGS. 2A-2E. Since TCP 404 has moved with respect to its location on finishing tool 412, this allows the speed at which finishing tool 412 travels along the surface of part 402 to remain substantially constant. Thus, the abrupt change of speed seen in the fixed TCP configuration shown in FIGS. 2A-2E can be avoided, thereby reducing the occurrence of defects caused by abrupt speed changes. At FIG. 4E, finishing tool 112 has completed processing of finishing surface 410 and is finishing flat horizontal surface 408. At FIG. 4F, the finishing process is complete, resulting in part 402 having substantially no defects along the tool control path. That is, part 402 has substantially no visually detectable defects related to the finishing process on flat vertical 406, flat horizontal 408 and curved 410 surfaces. In addition, substantially no defects related to the finishing process exist between flat vertical 406 and curved surface 410 or between flat horizontal 408 and curved 410 surfaces.

According to additional embodiments, the finishing tool can be used to finishing more than the three surfaces 406, 410 and 408 of part 402. For example, methods described can be used to polish a corner of a part. A corner can have three flat surfaces, three curved edges and a curved corner positioned in the center of the three flat surfaces and three edges. The tool control path can be configured to travel along one or more of the surfaces of the corner and the TCP can be configured to shift accordingly. For example, the TCP can be at a first location while the finishing tool polishes a first flat surface, and then moved to a second location while the finishing tool polishes a first curved edge. The TCP can then be moved to a third location while the finishing tool finishes a second flat surface. Then the TCP can move to a forth location while the finishing tool finishes the curved corner. This pattern can continue as the tool control path run along all the surfaces to be finished.

FIG. 5 is a flowchart 500 showing process steps for finishing a surface of a part in accordance with described embodiments. At 502, a part is positioned in a CNC tool. The part has at least one curved surface adjacent to at least one flat surface. For example, the curved surface can be a curved corner positioned between two flat surfaces. The tool control path of the CNC tool can be configured to travel along the at least one flat surface and the at least one curved surface. At 504, the surface of the part is finished by moving a finishing tool along the tool control path. For example, the tool control path of the finishing process shown in FIGS. 4A-4E moves from flat vertical surface 406 to curved surface 410 to flat horizontal surface 408. As describe above with reference to FIG. 1, the finishing tool can rotate about an axis substantially normal to the surfaces of the part. As described above, defects that can be caused by changes in the speed at which the finishing tool travels along the surface of the part can be minimized by varying the location of a TCP with respect to the finishing tool depending on the location of the finishing tool with respect to the tool control path. Note that the rotation speed of the finishing tool can be constant or varied during the finishing process.

FIG. 6 is a block diagram of an electronic device suitable for controlling some of the processes in the described embodiment. Electronic device 600 can illustrate circuitry of a representative computing device. Electronic device 600 can include a processor 602 that pertains to a microprocessor or controller for controlling the overall operation of electronic device 600. Electronic device 600 can include instruction data pertaining to manufacturing instructions in a file system 604 and a cache 606. File system 604 can be a storage disk or a plurality of disks. In some embodiments, file system 604 can be flash memory, semiconductor (solid state) memory or the like. The file system 604 can typically provide high capacity storage capability for the electronic device 600. However, since the access time to the file system 604 can be relatively slow (especially if file system 1004 includes a mechanical disk drive), the electronic device 600 can also include cache 606. The cache 606 can include, for example, Random-Access Memory (RAM) provided by semiconductor memory. The relative access time to the cache 606 can substantially shorter than for the file system 604. However, cache 606 may not have the large storage capacity of file system 604. Further, file system 604, when active, can consume more power than cache 606. Power consumption often can be a concern when the electronic device 600 is a portable device that is powered by battery 624. The electronic device 600 can also include a RAM 1020 and a Read-Only Memory (ROM) 622. The ROM 622 can store programs, utilities or processes to be executed in a non-volatile manner. The RAM 620 can provide volatile data storage, such as for cache 606.

Electronic device 600 can also include user input device 608 that allows a user of the electronic device 600 to interact with the electronic device 600. For example, user input device 608 can take a variety of forms, such as a button, keypad, dial, touch screen, audio input interface, visual/image capture input interface, input in the form of sensor data, etc. Still further, electronic device 600 can include a display 610 (screen display) that can be controlled by processor 602 to display information to the user. Data bus 616 can facilitate data transfer between at least file system 604, cache 606, processor 602, and controller 613. Controller 613 can be used to interface with and control different manufacturing equipment through equipment control bus 614. For example, control bus 614 can be used to control a computer numerical control (CNC) tool, a press, an injection molding machine or other such equipment. For example, processor 602, upon a certain manufacturing event occurring, can supply instructions to control manufacturing equipment through controller 613 and control bus 614. Such instructions can be stored in file system 604, RAM 620, ROM 622 or cache 606.

Electronic device 600 can also include a network/bus interface 611 that couples to data link 612. Data link 612 can allow electronic device 600 to couple to a host computer or to accessory devices. The data link 612 can be provided over a wired connection or a wireless connection. In the case of a wireless connection, network/bus interface 611 can include a wireless transceiver. Sensor 626 can take the form of circuitry for detecting any number of stimuli. For example, sensor 626 can include any number of sensors for monitoring a manufacturing operation such as for example a Hall Effect sensor responsive to external magnetic field, an audio sensor, a light sensor such as a photometer, computer vision sensor to detect clarity, a temperature sensor to monitor a molding process and so on.

The various aspects, embodiments, implementations or features of the described embodiments can be used separately or in any combination. Various aspects of the described embodiments can be implemented by software, hardware or a combination of hardware and software. The described embodiments can also be embodied as computer readable code on a non-transitory computer readable medium for controlling manufacturing operations or as computer readable code on a non-transitory computer readable medium for controlling a manufacturing line. The non-transitory computer readable medium is any data storage device that can store data which can thereafter be read by a computer system. Examples of the non-transitory computer readable medium include read-only memory, random-access memory, CD-ROMs, DVDs, magnetic tape, optical data storage devices, and carrier waves. The non-transitory computer readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the described embodiments. However, it will be apparent to one skilled in the art that the specific details are not required in order to practice the described embodiments. Thus, the foregoing descriptions of specific embodiments are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the described embodiments to the precise forms disclosed. It will be apparent to one of ordinary skill in the art that many modifications and variations are possible in view of the above teachings. 

What is claimed is:
 1. A method for finishing a surface of a part, the method comprising: positioning the part in a computer numerical control (CNC) tool, wherein the part has at least one curved surface adjacent to at least one flat surface; and finishing the surface of the part by moving a finishing tool along a tool control path that travels along the at least one flat surface and the at least one curved surface, wherein the finishing tool rotates about an axis substantially normal to the at least one curved and at least one flat surfaces during the finishing, wherein during the finishing a location of a tool center point (TCP) varies with respect to the finishing tool depending on the location of the finishing tool with respect to the tool control path.
 2. The method of claim 1, wherein the tool control path moves the finishing tool in an orientation that is substantially normal to the surface of the part.
 3. The method of claim 1, wherein the finishing tool travels along the tool control path a substantially constant speed.
 4. The method of claim 1, tool control path moves the finishing tool from a first flat surface to a first curved surface and to a second flat surface.
 5. The method of claim 4, wherein the first curved surface is an edge of the part.
 6. The method of claim 4, wherein the first curved surface is a corner of the part.
 7. The method of claim 1, wherein after the finishing the part has substantially no visually detectable defects related to the finishing process along the tool control path.
 8. The method of claim 1, wherein the part is a thermoplastic molded part.
 9. A system for finishing a surface of a part, comprising: a computer numerical control (CNC) tool configured to finish the surface of the part; and a robotic arm positioned on the CNC tool, the robotic arm configured to maneuver a finishing tool positioned on an end of the robotic arm in a three dimensional tool control path along the surface of the part, the three dimensional tool control path including a path that travels along at least one flat surface and the at least one curved surface of the part, the robotic arm configured to rotate the finishing tool about an axis substantially normal to the at least one curved surface and the at least one flat surface during a finishing operation, wherein the CNC tool is configured to vary a tool center point (TCP) of the finishing tool depending on the location of the finishing tool with respect to the three dimensional tool control path during the finishing operation.
 10. The system of claim 9, wherein the part has at least one edge that has a curved surface between a first flat surface and a second flat surface, wherein the CNC tool is configured to maneuver the finishing tool in a tool control path that travels from the first flat surface to the curved surface to the second flat surface.
 11. The system of claim 10, wherein the CNC tool is configured to maneuver the robotic arm such that the TCP is at a first location while the polishing tool polishes the first flat surface and moves to a second location while the polishing tool polishes the curved surface and moves to a third location while the polishing tool polishes the second flat surface.
 12. The method of claim 11, wherein the movement of the TCP from the first location to the second location and to the third location is continuous.
 13. The method of claim 9, wherein the part is a thermoplastic molded part.
 14. The method of claim 9, wherein the part is a metal part.
 15. The method of claim 9, further comprising: a dispenser configured to dispense fluid onto the part during the polishing.
 16. A non-transitory computer readable medium for storing a computer program executable by a processor for finishing a surface of a part, comprising: computer code for finishing the surface of the part on a computer numerical control (CNC) tool, the computer code configured to maneuver a finishing tool positioned on a robotic arm of the CNC machine along a tool control path that travels along at least one flat surface and at least one curved surface of the part, wherein the computer code is configured to rotate the finishing tool about an axis substantially normal to the at least one flat and at least one curved surfaces during the finishing, wherein during the finishing a location of a tool center point (TCP) varies with respect to the finishing tool depending on the location of the finishing tool with respect to the tool control path.
 17. The method of claim 16, wherein the computer code for moving a finishing tool along a tool control path comprises computer code for maneuvering a robotic arm of the CNC tool in three dimensions along the tool control path.
 18. The method of claim 17, wherein the tool control path moves the finishing tool in an orientation that is substantially normal to the surface of the part.
 19. The method of claim 17, wherein the finishing tool is positioned on an end of the robotic arm.
 20. The method of claim 17, wherein the TCP is established as a datum point for orienting the movement of the robot in three dimensions. 